Demapper for a multiple-input, multiple-output symbol receiver

ABSTRACT

A method, implementable on a multiple-input, multiple-output symbol receiver, includes selecting a hypothesis for a second symbol value U 2  from among the set of fixed constellation points, calculating a hypothesis for a first symbol value U 1  from the resultant selected U 2  value, and generating a first half of counter-hypotheses from interim results of calculating the hypotheses values.

FIELD OF THE INVENTION

The present invention relates to communication systems generally and tomultiple-input, multiple-output communication systems in particular.

BACKGROUND OF THE INVENTION

In most transmission systems, in order to transmit at a high bit rate,symbols representing multiple bits are transmitted. The symbols aredefined in the complex plane and are defined by a given constellation.The more bits that each symbol represents, the more points in theconstellation. The complex symbols are transmitted with twofrequency-domain signals, one representing the Real part and onerepresenting the Imaginary part, known as the “in-phase” and“quadrature” signals.

FIG. 1, to which reference is now made, shows an exemplary 64-pointconstellation, for the QAM (quadrature amplitude modulation) method.Each point, which represents a symbol value, is a complex number havinga Real and Imaginary parts. Thus, the point labeled 40 has a complexvalue of (5,3). It also has a complex bit pattern associated therewith,of 101 111, where 101 is the bit pattern associated with the Real partand 111 is the bit pattern associated with the Imaginary part of thesymbol. Thus, there are 6 bits associated with each symbol.

FIG. 2, to which reference is now made, illustrates the transmissionfrom one transmitting antenna, labeled 10, to another, receiving,antenna, labeled 12. Between the two there is a “channel” H, which isthe path in the air between transmitting antenna 10 and receivingantenna 12, which may be obstructed, such as by trees, hills, buildings,etc. Transmitting antenna 10 transmits a symbol, here labeled u, andreceiving antenna 12 receives a signal, here labeled y, which is acorrupted version of symbol u, by the channel H and by noise n, asfollows:Y=hu+n  Equation 1

where the h defines how the channel affects transmission and n is randomnoise.

Equation 1 defines how the channel affects the transmission of a symbol.Point 5 in FIG. 1 shows a received symbol y. Note that point 5, whileclose to two points 7 and 9 of the constellation, doesn't sit on eitherof them. Thus, it is the job of the receiver to determine which symbolpoint 7 or 9 (or any other symbol) was originally transmitted.

A system where transmission of two or more symbols at the same time fromtwo or more transmitter antennas to two or more receiver antennas takesplace is known as a MIMO (multiple-input, multiple-output) communicationsystem. The transmitted symbols are not related to each other and thepaths, though similar, are not exactly the same. This is shown in FIG.3, to which reference is now made, for the case of two transmitterantennas and two receiver antennas. Symbols u₁ and u₂ are transmittedfrom transmitting antennas 10 a and 10 b, respectively, and signals y₁and y₂ are received at receiving antennas 12 a and 12 b, respectively.Both receiving antennas 12 a and 12 b receive versions of thetransmitted symbols u₁ and u₂, which are transformed by the channel,where the channel for the MIMO case is a matrix H. and are affected bynoise n₁ and n₂, respectively.

FIG. 4, to which reference is now made, shows exemplary received signalsy₁ and y₂ in their constellations. Signal y₁ is in the lower rightquadrant while signal y₂ is in the upper right quadrant. The goal is todecode signals y₁ and y₂ in order to determine transmitted symbols u₁and u₂, which normally represent a coded version of original data bitsincluding redundancy. The decoding process can be divided in two stepswhere, initially, the received signals y1 and y2 are converted to “soft”bit information such as Log Likelihood Ratios for each coded bit.Afterwards, the data bits are extracted from the soft bit information bya Maximum Likelihood Sequence Estimator, such as a soft-input ViterbiDecoder.

SUMMARY OF THE PRESENT INVENTION

There is provided, in accordance with a preferred embodiment of thepresent invention, a demapper for a multiple-input, multiple-outputsymbol receiver. The demapper includes a hypothesis determiner and afirst half counter-hypothesis determiner. The hypothesis determinerdetermines hypotheses values for each of a multiplicity of receivedsymbols. The first half counter-hypotheses determiner reuses interimresults of the hypothesis determiner to generate a first half of thecounter-hypotheses.

Further, in accordance with a preferred embodiment of the presentinvention, the demapper includes a the second half counter-hypothesesdeterminer which receives a portion of the interim results and providesthem to a table lookup to generate a second half of the set of thecounter-hypotheses.

Moreover, in accordance with a preferred embodiment of the presentinvention, the hypothesis determiner includes a QR decomposer, anormalizer, a candidate hypothesis generator, a normalized errorcalculator and a hypothesis generator. The QR decomposer generates atleast an R matrix from an input channel estimate matrix H. Thenormalizer normalizes input signals and elements of the R matrix. Thecandidate hypothesis generator operates on the output of the normalizerto generate a plurality of constrained candidate hypothesis values forone of the received symbols and resultant unconstrained hypothesisvalues for a second one of the received symbols. The normalized errorcalculator operates with minimal multiplications and generates an errormagnitude for each of the plurality of constrained candidate hypothesesand their resultant unconstrained hypothesis values. The hypothesisgenerator reviews the error magnitudes and selects the constrainedhypothesis and resultant unconstrained hypothesis corresponding to thesmallest error magnitude.

Further, in accordance with a preferred embodiment of the presentinvention, the first half counter-hypotheses determiner includes amultiplicity of counter-hypothesis generators, one per bit of theselected hypothesis, each to review a set of the error magnitudeassociated with candidate counter-hypotheses and to select thecounter-hypothesis corresponding to the smallest error magnitude in theset of error magnitudes.

Still further, in accordance with a preferred embodiment of the presentinvention, the normalized error calculator includes a d₂ error magnitudecalculator, a d₁ error magnitude calculator and a total error magnitudecalculator. The d₂ error magnitude calculator evaluates the error Ē₂^((k))= X ₂− r ₂U₂ ^((k)) and its corresponding L₁ norm. The d₁ errormagnitude calculator evaluates Ũ₁ ^((k))= X ₁− R ₁₂U₂ ^((k)), to findthe closest constellation point U₁ ^((k)) to an unconstrained solutionŨ₁ ^((k)) and determines the error Ē₁ ^((k)) therebetween and itscorresponding L₁ norm. The total error magnitude calculator determinesthe total error magnitude from the output of d₂ error magnitudecalculator and d₁ error magnitude calculator.

Additionally, in accordance with a preferred embodiment of the presentinvention, the d₁ error magnitude calculator and the d₂ error magnitudecalculator include L₁ norm calculators.

Furthermore, in accordance with a preferred embodiment of the presentinvention, the demapper has a fixed throughput defined by a fixed numberof cycles to generate the output.

Moreover, in accordance with a preferred embodiment of the presentinvention, the normalized error calculator includes a multiplicity ofprocessing branches, wherein the number of processing branches scaleswith a complexity of the constellation type related to the symbols.

Still further, in accordance with a preferred embodiment of the presentinvention, the demapper provides the hypotheses and counter-hypothesesvalues to an LLR determiner. The LLR determiner utilizes the interimresults of the hypothesis and first half counter-hypotheses determinerand interim results of the second half counter-hypothesis determiner togenerate a log-likelihood ratio L_(b).

There is also provided, in accordance with a preferred embodiment of thepresent invention, a method, implementable on a multiple-input,multiple-output symbol receiver. The method includes selecting ahypothesis for a second symbol value U₂ from among the set of fixedconstellation points, calculating a hypothesis for a first symbol valueU₁ from the resultant selected U₂ value and generating a first half ofcounter-hypotheses from interim results of calculating the hypothesesvalues.

Further, in accordance with a preferred embodiment of the presentinvention, the method includes providing a portion of the interimresults to a table lookup to generate a second half of the set of thecounter-hypotheses.

Moreover, in accordance with a preferred embodiment of the presentinvention, the method also includes, prior to the calculating,normalizing the following equations by r₁ thereby to enable theremaining operations to operate with minimal multiplications:E ₂ =X ₂ −r ₂ U ₂E ₁ =X ₁ −r ₁ U ₁ −R ₁₂ U ₂

where the R elements are from a right triangular matrix R generated byQR decomposition from an input channel estimate matrix H, U₁ and U₂ arethe transmitted symbols to be demapped and X₁ and X₂ are the receivedsignals.

Further, in accordance with a preferred embodiment of the presentinvention, the calculating includes calculating errors and determiningthe size of the errors is performed with an L₁ norm withoutsignificantly affecting the quality of the demapping.

Additionally, in accordance with a preferred embodiment of the presentinvention, the method also includes determining a log-likelihood ratioL_(b) from the interim results of calculating the hypotheses values andfrom interim results of the table lookup operation.

BRIEF DESCRIPTION OF THE DRAWINGS AND APPENDICES

The subject matter regarded as the invention is particularly pointed outand distinctly claimed in the concluding portion of the specification.The invention, however, both as to organization and method of operation,together with objects, features, and advantages thereof, may best beunderstood by reference to the following detailed description when readwith the accompanying drawings in which:

FIG. 1 is a schematic illustration of an exemplary 64-pointconstellation, for the QAM (quadrature amplitude modulation) method;

FIG. 2 is a schematic illustration of the transmission from onetransmitting antenna to a receiving antenna;

FIG. 3 is a schematic illustration of the transmission from twotransmitting antennas to two receiving antennas;

FIG. 4 is a schematic illustration of a constellation with two receivedsymbols;

FIG. 5 is a block diagram illustration of a MIMO (multiple-input,multiple-output) system, constructed and operative in accordance with apreferred embodiment of the present invention;

FIG. 6 is a block diagram illustration of the elements of the MIMOprocessor of FIG. 5, constructed and operative in accordance with apreferred embodiment of the present invention;

FIGS. 7 and 8 are illustrations of the calculations performed by ademapper of FIG. 6;

FIGS. 9 and 10 are block diagram illustrations of an exemplary hardwareimplementation of the demapper of FIG. 6; and

Appendix A provides tables useful for a table lookup element of FIG. 10for multiple types of constellations.

It will be appreciated that for simplicity and clarity of illustration,elements shown in the figures have not necessarily been drawn to scale.For example, the dimensions of some of the elements may be exaggeratedrelative to other elements for clarity. Further, where consideredappropriate, reference numerals may be repeated among the figures toindicate corresponding or analogous elements.

DETAILED DESCRIPTION OF THE PRESENT INVENTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the invention.However, it will be understood by those skilled in the art that thepresent invention may be practiced without these specific details. Inother instances, well-known methods, procedures, and components have notbeen described in detail so as not to obscure the present invention.

Applicant has realized that the processing for a MIMO (multiple-input,multiple-output) demapper may be significantly reduced.

Reference is now made to FIG. 5, which illustrates the main elements ofa MIMO system. On the transmission side, an access point (AP) mayprovide its data to be transmitted through multiple transmittingantennas 10, where FIG. 5 shows 2 antennas 10. These are received by Nreceiving antennas 12, where, in FIG. 5, three receiving antennas 12 areshown. The output of receiving antennas 12 may be processed, such as bya radio frequency (RF) unit 20 to receive the transmission and toconvert it from an analog to a digital signal (ADC), a time domain (TD)processor 22 to process the digital, time domain signal and a fastFourier transform (FFT) unit 24 to convert the time domain signal to afrequency based signal, which is the incoming signal y. Units 20-24 maybe standard units. The incoming y signal may be a vector of length N,where N is the number of receiving antennas 12.

The incoming signal y may be provided to a MIMO processor which, inaccordance with a preferred embodiment of the present invention, may bea list based, MIMO processor 30, and to a channel estimator 32. Channelestimator 32 may be a standard channel estimator which may provide thematrix H for the current channel, where H is of size N×M, where M is thenumber of transmission antennas 10.

The output of MIMO processor 30 may be provided to a deinterleaver 34which provides its output to a Viterbi decoder 36 for a finaldetermination of the transmitted data bits.

The output of MIMO processor 30 may be a vector Lb which may provide“soft” information corresponding to the values of the symbols urepresented by the incoming signal y. Like y, Lb may be a vector, but Lbmay be a vector of length M*J, where J is the number of bits in asymbol. In other words, u represents the M transmitted symbols, each ofwhich has J bits.

In accordance with a preferred embodiment of the present invention, MIMOprocessor 30 may provide “soft decisions” for each bit, thus providingunit 34 and Viterbi decoder 36 with some indication of the quality ofthe demapping.

MIMO processor 30 may calculate a log-likelihood ratio L_(b) for eachbit position b in symbol vector u. Using a “Log Max approximation”, astandard approximation, the ratio L_(b) may be defined as:

$\begin{matrix}{L_{b} = {\frac{1}{\sigma^{2}}\left( {{2{\hat{u}}^{\lbrack b\rbrack}} - 1} \right)\left( {{{y - {H{\hat{c}}_{b}}}}^{2} - {{y - {H\hat{u}}}}^{2}} \right)}} & {{Equation}\mspace{14mu} 2}\end{matrix}$

where σ may be the standard deviation of the noise, û may be ahypothesis for the values of u, ĉ_(b) may be a corresponding counterhypothesis for the bit position b, defined in more detail herein belowand, û^([b]) may be the bit value {0 or 1} at bit position b of the bitpattern associated with û.

Equation 2 may be further simplified by performing a standarddecomposition, defined by:H=QR  Equation 3

Where Q is the unitary matrix, which, when multiplied by itsconjugate-transpose Q* creates the identity matrix I (mathematically:Q×Q*=I), and R is an upper-triangular matrix.

The resultant simplified version of equation 2 is:

$\begin{matrix}{L_{b} = {\frac{1}{\sigma^{2}}\left( {{2{\hat{u}}^{\lbrack b\rbrack}} - 1} \right)\left( {{{x - {R{\hat{c}}_{b}}}}^{2} - {{x - {R\hat{u}}}}^{2}} \right)}} & {{Equation}\mspace{14mu} 4}\end{matrix}$

where x is a form of y defined by Q*×y.

It will be appreciated that equation 4 is simpler than equation 2because H is a complex matrix generally having no zero elements whereasR is an upper triangular matrix of complex elements.

Hypothesis û may be defined by:û=arg

∥x−Ru∥ ²  Equation 5

where argmin is the argument which minimizes the “L₂ norm”, a standardnorm defined by the double lines, and

is the space of the constellation (i.e. it covers all possible symbolvalues within the constellation).

The counter hypothesis at bit position b, ĉ_(b), may be defined as:ĉ _(b)=arg

[b]_((û)) ∥x−Rc∥ ²  Equation 6

Where

^([b])(û) is the subset of the constellation space

whose elements have associated bit patterns with a bit value at positionb opposite to the corresponding bit value at that bit positionassociated with the hypothesis û. To determine the log-likelihood ratioL_(b), therefore, one has to evaluate equations 5, 6 and 4, in thatorder. There are 64 possible symbols in the QAM constellation exampleand two symbols which have been transmitted. This is a significantnumber of possibilities! Moreover, each equation requires a significantamount of matrix calculations, which requires a significant amount ofmultiplications. Thus, this calculation is difficult to perform for thelarge constellations such as the one used here as an example.

Applicant has invented a relatively efficient way to evaluate equations6 and 5 in a manner which minimizes the amount of multiplications andother necessary operations. Reference is now made to FIG. 6, whichillustrates the elements of MIMO processor 30. Processor 30 may comprisea QR decomposer 42, a normalizer 44, a complex list-based lattice (CLL)demapper 46 and log-likelihood ratio (LLR) determiner 48. Together, theelements solve equations 4, 5 and 6.

Initially, processor 30 may handle the error term:e=(E ₁ E ₂)^(T) =x−Ru

Since R is an upper triangular matrix, its elements are:

$R = \begin{pmatrix}r_{1} & R_{12} \\0 & r_{2}\end{pmatrix}$

where r₁ and r₂ are real variables and R₁₂ is a complex variable. Theerror term may be rewritten as two error terms, as follows:E ₂ =X ₂ −r ₂ U ₂  Equation 7E ₁ =X ₁ −r ₁ U ₁ −R ₁₂ U ₂  Equation 8

Normalizing equations 7 and 8 by r₁ reduces the implementation costs ofequation 8, which must be computed many times. Thus, QR decomposer 42may evaluate equation 3 and may produce matrices Q and R and normalizer44 may normalize the non-symbol terms of equations 7 and 8, to generate:Ē ₂ = X ₂ r ₂ U ₂  Equation 7aĒ ₁ = X ₁ −U ₁ − R ₁₂ U ₂  Equation 8a

Equation 8a may be rewritten as two equations an equation for anunconstrained solution Ũ₁ and an equation for the error in constrainingŨ₁ to a valid constellation point U₁. Thus:Ũ ₁ ^((k)) = X ₁ − R ₁₂ U ₂ ^((k))  Equation 9Ē ₁ ^((k)) =Ũ ₁ ^((k)) −U ₁ ^((k))  Equation 10

Equations 7a, 9 and 10 need to be evaluated for all possiblecombinations of U₁ and U₂. This is normally a difficult operation giventhat, in a constellation of |

|symbols, there are |

|² combinations of U₁ and U₂.

If you fix the value of U₂ to be one of the values in the constellation,equation 9 will generate an associated unconstrained solution Ũ₁ fromwhich U₁ may be derived as the constellation point nearest to theunconstrained solution Ũ₁.

Reference is now made to FIG. 7, which illustrates this. Column 50 liststhe |

| possible constellation points, denoted by k (64 points in the QAMconstellation example). Column 52 lists the symbol value of U₂ ^((k))for each point k. Rather than giving values, the table lists these as(Ri,Ii). These are the possible values of U₂. Using equation 9, column54 lists the resultant values of Ũ₁ ^((k)) for each value of U₂ ^((k)).For clarity, the table lists only three resultant values, for k=1, 37and 64.

It will be appreciated that U₁ ^((k)) may be set to the symbol valueclosest to the generated value of approximation Ũ₁ ^((k)).

Equation 10 provides the error term for each of the 64 values of U₁^((k)) and equation 7a provides the error term for E₂, for each of the64 values of U₂ ^((k)).

A error magnitude d^((k)) may be generated for each value of k fromequations 10 and 8a, as follows:d ₂ ^((k))=|Re(Ē ₂ ^((k)))|+|Im(Ē ₂ ^((k)))|  Equation 11ad ₁ ^((k))=|Re(Ē ₁ ^((k)))|+|Im(Ē ₁ ^((k)))|  Equation 11bd ^((k)) =d ₂ ^((k)) +d ₁ ^((k))  Equation 11c

Where Re( ) takes the real part and Im( ) takes the imaginary part of acomplex number. It will be appreciated that equations 11a and 11bdetermine the error magnitude using an L₁ norm, which is a simplercalculation as it uses only standard absolute values and does not haveany multiplication in it.

The table of FIG. 7 lists d^((k)), in column 56, for each of the 64values of the table. In accordance with a preferred embodiment of thepresent invention, demapper 46 may search column 56 to find the row withthe smallest error magnitude d. For example, in FIG. 7, row 37 iscircled to indicate that d⁽³⁷⁾ has the smallest value. Thus, in thisexample, the 37^(th) constellation pair (U₁ ⁽³⁷⁾,U₂ ⁽³⁷⁾) provides uswith the hypothesis, i.e. û. Mathematically, the search in column 56 maybe written as:k _(ML)=arg min_(k) {d ^((k))}  Equation 12

i.e. the constellation point of the solution is the one which has thesmallest error magnitude d. It should be noted that, aside from the useof the L₁ norm instead of the L₂ norm, equation 12 leads to estimateswhich are essentially ML (maximum likelihood) estimates for thetransmitted symbols u because of the log-max approximation in equation2. It will be appreciated that the estimates of equation 12 are onlynegligibly different from the true ML estimates. The resultanthypothesis is written mathematically as:û=(Û ₁ ,Û ₂)^(T)=(U ₁ ^((k) ^(ML) ⁾ ,U ₂ ^((k) ^(ML) ⁾)^(T)  Equation 13

It will be appreciated that, with a minimal amount of multiplicationsand only 64 combinations, demapper 46 may produce the hypothesis û (i.e.Equation 5). What remains is to determine the counter-hypotheses ĉ_(b).

Applicant has realized that, since the U₂ value was selected from amongthe possible values of the constellation, the U₂ value is a“constrained” solution, constrained to be a proper constellation point.Thus, its counter-hypotheses ĉ_(b) may be directly determined from theerror magnitude calculations of equation 11c. This is not true for theU₁ values, which are calculated from the U₂ constellation points and donot, in general, cover all the constellation points.

It will be appreciated that, since the U₂ value is a properconstellation point, accordingly, half of the counter-hypothesisdeterminations (i.e. those related to U₂) do not require additionalcalculations and they are thus determined nearly for ‘free’, as follows:

For each bit b in the selected Û₂ (for example, there are 6 bits in a 64QAM constellation point), demapper 46 may determine which of theconstellation points have the opposite value (i.e. they have a 1 valuewhere the bit in Û₂ has a 0 value or a 0 value where the bit in Û₂ has a1 value). Thus, if U₂ ⁽³⁷⁾ (k_(ML)=37) is (101,000), then, for bit 1,demapper 46 may search for all constellation points whose first bit hasa value of 0. There are 32 of these points. FIG. 8 denotes thoseconstellation points with the desired counter-hypothesis bit value witha check and those with the undesired bit value with a dash.

In effect, demapper 46 may mask the constellation points that have theundesired bit value and then may search through the remaining unmaskederror magnitude d^((k)) values in column 56 for the constellation pointwith the smallest error magnitude. This may produce counter-hypothesisĉ_(b) for bit b. In FIG. 7, d⁽²⁴⁾ is shown to have the smallest errormagnitude and thus, constellation pair 24, U₂ ⁽²⁴⁾ and the correspondingU₁ ⁽²⁴⁾, is the counter-hypothesis for bit 1 of hypothesis U₂ ⁽³⁷⁾,where bit 1 of hypothesis U₂ ⁽³⁷⁾ is bit 7 of the overall hypothesisvector. Note that, in the example of FIG. 7, d⁽¹⁾ is listed as thesmallest error magnitude for bit 8, and d⁽⁶⁴⁾ is listed as the smallesterror magnitude for bit 12.

Mathematically, the process described hereinabove is defined as:l _(ML) ^((β))=arg min_(lεδ) _(β) {d ^((l))}δ_(β) ={l:U ₂ ^((l)[β]) ≠Û ₂ ^([β])}, β=1, . . . ,6ĉ _(β+6)=(U ₁ ^((l) ^(ML) ^((β)) ⁾ ,U ₂ ^((l) ^(ML) ^((β))⁾)^(T)  Equation 14

where l is one constellation point, l_(ML) ^((β)) is the selectedconstellation point (i.e. the point with the smallest error magnitude)and δ_(β) is the mask.

What remains is to determine the counter-hypotheses ĉ_(b) for bitsassociated with hypothesis Û₁. Recall that Ũ₁ is an unconstrainedsolution (i.e it is a calculated value rather than a fixed, integerconstellation value). Thus, it isn't clear what the counter-hypothesisis, as the values of the bits are not exactly 0 or 1. Thus, a searchmust be made for the counter-hypothesis for each bit.

Applicant has realized that, for the 64 point QAM constellation, thereare only four possibilities for each counter-hypothesis for U₁. This isbecause U₁ has six bits, only one of which must be changed for thecounter-hypothesis. If the changed bit corresponds to the real part ofthe symbol, the imaginary part is kept unchanged. Likewise, if thechanged bit corresponds to the imaginary part of the symbol, the realpart is kept unchanged. This leaves two bits, both from either the realpart or the imaginary part that can be varied. Consequently, there areonly four candidate constellation points. Thus, as shown in FIG. 8 towhich reference is now briefly made, if Û₁ is (010,101), if the bit ofinterest is bit 3, which has a 0 value, only the constellation points(001,101), (011,101), (111,101) and (101,101) have bit 3 with a 1 value,while keeping bits 4, 5 and 6 unchanged. If the bit of interest is bit2, then the constellation points of interest are (000,101), (001,101),(101,101) and (100,101).

Note that in the example of FIG. 8, the four constellation points areall in the same row. That is because bits 1-3 are associated with theReal axis. The points would be in the same column if the bits ofinterest were associated with the Imaginary axis. In accordance with thepresent invention, constellation points are searched along one axis;otherwise, the total error magnitude would necessarily increase and notreach a global minimum.

Thus, for each of the four possible counter-hypothesis constellationpoints, the error magnitude may be determined and the smallest valueselected. This process is repeated for each of 64 unconstrainedsolutions Ũ₁ ^((m)). Each corresponding constrained value U₁ ^((m)) isconverted to a candidate value U₁ ^((m,β)), where the latter is a propercounter-hypothesis candidate as described above, for each bit position βin Û₁. For each candidate value U₁ ^((m,β)), a corresponding partialerror magnitude d₁ ^((m,β)) is computed according to equations 10 and11b. This partial error magnitude is used to compute the total errormagnitude d^((m,β))=d₂+d₁ ^((m,β)). The resulting set d^((m,β)) of 64error magnitudes may be searched to determine the smallest value. Thepair {U₂ ^((m)),U₁ ^((m,β))} corresponding to the smallest d^((m,β)) isselected as the essentially ML estimate of c_(β) for bit β.

Note that this process is repeated for each bit position β in Û₁. Thearithmetic cost of each operation is essentially a small number ofadditions (no multiplications are involved due to the pre-normalizationin equation 8a) per constellation point (64 possibilities) and per bitposition (6 possibilities).

Applicant has realized that the determination of U₁ ^((m,β)) perconstellation point m and per bit position β is a function of the valueof Û₁ and the position of the hypothesis candidate U₁ ^((m)) relative tothe corresponding unconstrained solution Ũ₁ ^((m)) (i.e. is thereal/imaginary part of Ũ₁ ^((m)) to the left/below or right/above of theclosest constellation point U₁ ^((m))?) and may be implemented as atable lookup (TLU) function. For 64 point QAM, the lookup table has2×8×2×3=96 entries. Appendix A provides exemplary lookup tables forvarious QAM constellations. The table lists the bit position β, thevalue of hypothesis bit β (Û₁ ^([β])), the sign of the error term Ē₁^((m)), the hypothesis candidate U₁ ^((m)), and the resultant counterhypothesis candidate U₁ ^((m,β)).

Given the output of the table lookup function, the counter-hypothesismay be calculated, as follows:Re(U ₁ ^((m,β)))=TLU(Û ₁ ^([β]),Re(U ₁ ^((m))),sign(Re(Ē ₁^((m)))),β)  Equation 15AIm(U ₁ ^((m,β)))=TLU(Û ₁ ^([β]),Im(U ₁ ^((m))),sign(Im(Ē ₁^((m)))),β)  Equation 15BĒ ₁ ^((m,β)) =Ũ ₁ ^((m)) −U ₁ ^((m,β))  Equation 16d ₁ ^((m,β))=|Re({tilde over (E)} ₁ ^((m,β)))|+|Im({tilde over (E)} ₁^((m,β)))|  Equation 17d ^((m,β)) =d ₂ ^((m)) +d ₁ ^((m,β))  Equation 18m _(ML) ^((β))=arg min_(m) {d ^((m,β))}  Equation 19ĉ _(β)=(U ₁ ^((m) ^(ML) ^((β)) ^(,β)) ,U ₂ ^((m) ^(ML) ^((β))⁾)^(T)  Equation 20

where, β is the bit number of interest (i.e. 1-6), and m is theconstellation point index of interest. Note that the values of Û₁, U₁^((m)), Ē₁ ^((m)) and d₂ ^((m)) known from the previous calculations.

Reference is now made to FIGS. 9 and 10, which illustrate an exemplaryhardware implementation for demapper 46. Demapper 46 may comprise ahypothesis and top-half counter-hypothesis determiner (HCHD) 60 and abottom-half counter-hypothesis determiner (BCHD) 62.

HCHD 60 may comprise a d₂ error magnitude calculator 64 and a d₁ errormagnitude calculator 66. D₂ error magnitude calculator 64 may comprise amultiplicity of elements 68 which may receive the normalized values ofr₂ and of received symbol X₂ and may evaluate equation 7a (Ē₂= X ₂− r₂U₂) for each constellation point U₂. Equation 7a is a complex equationbut may be evaluated as two real equations as follows:ReĒ ₂=Re X ₂ − r ₂ReU ₂  Equation 7a(1)ImĒ ₂=Im X ₂ − r ₂ImU ₂  Equation 7a(2)

Thus, elements 68 may separately evaluate equations 7a(1) and 7a(2).

Moreover, since quantities Re U₂ and Im U₂ are essentially 3-bitoperands (i.e. 3 bit values), elements 68 may be efficiently implementedwith a few adders rather than as multipliers. Calculator 64 may alsocomprise a multiplicity of simple absolute value adders 70 which maydetermine the error magnitude d₂ (from equation 11a) for eachconstellation point U₂.

D₁ calculator 66 may determine the error magnitude d₁ and may comprisecomplex multipliers 72 to evaluate equation 9 (Ũ₁ ^((k))= X ₁− R ₁₂U₂^((k))) and to thus determine the unconstrained solution Ũ₁ ^((k)). d₁calculator 66 may also comprise a multiplicity of nearest constellationpoint determiners 74 which may find the closest constellation point toeach unconstrained solution Ũ₁ ^((k)), thereby to determine the U₁hypothesis. d₁ calculator 66 may comprise a multiplicity of subtractors76 to subtract the U₁ values from the unconstrained solution Ũ₁ ^((k)),thereby evaluating equation 10. Their output may be provided to amultiplicity of simple absolute value adders 78 to determine the partialerror magnitude d₁ for each constellation point k, thereby evaluatingequation 11b.

The output of both calculators 64 and 66 may be provided to simple realadders 80 to determine the total error magnitude d^((k)) for eachconstellation point (i.e. evaluating equation 11c).

HCHD 60 may additionally comprise a hypothesis generator 67, comprisinga minimum evaluator 90 to determine, from error magnitudes d^((k)), ahypothesis candidate {U₂ ^((k)),U₁ ^((k))}, an associated selector 91,and a set of minimum evaluators 92 for the top counter hypotheses, eachof which reviews a different subset of the error magnitudes d^((k)),each with their associated selector 93. Hypothesis minimum evaluator 90may evaluate equation 12, over the entire set of error magnitudes,thereby to generate the hypothesis value of U₁ for its corresponding U₂.

The selected hypothesis values have associated bit patterns, and eachcounter hypothesis minimum evaluator 92 may be associated with aparticular bit b. Each evaluator 92 may select the error magnituded^((l)) with the minimum value having the required counter hypothesisvalue for its associated bit b. This is used to select thecounter-hypothesis values for U₂—an evaluation of equation 14. Applicanthas realized that by working with error magnitude subsets, no furtheroperations are required to compute the counter-hypotheses for U₂,besides finding the minimum among error magnitudes in each subset.

It will be appreciated that, except for the multipliers 68 and 72, theremaining elements of HCHD 60 are simple elements.

BCHD 62 may comprise table lookup elements 100, one per bit of thecounter-hypothesis, a few simple subtractors 104 and a multiplicity ofabsolute value adders 106. Each table lookup element 100 may take itshypothesis values for U₁ and difference values E₁ from HCHD 60 and maygenerate the value for U₁ ^((m,β)) and the selected constellation pointm, according to equation 15. Each subtractor 104 may evaluate equation16, subtracting the selected constellation point U₁ ^((m,β)) value fromthe previously determined unconstrained solution Ũ₁ ^((m)) value.

Each absolute value adder 106 may evaluate equation 17 by determiningthe error magnitude d₁ ^((m,β)) for the selected constellation point mand bit position β of U₁, where the error magnitude is calculated usingabsolute values (i.e. the L₁ norm). Each adder 108 may determine thefull error magnitude, adding the error magnitude d₁ from its adder 106to the d₂ error magnitude for the corresponding U₂ previously determinedby HCHD 60 (i.e. may evaluate equation 18).

BCHD 62 may additionally comprise a counter-hypothesis generator 110comprising, for each bit, a minimum evaluator 112 with an associatedselector 114. Each minimum evaluator 112 may evaluate equation 19 byreviewing the error magnitudes d generated by adders 108 and byselecting the smallest error magnitude d. Each minimum evaluator 112 maythen indicate to its selector 114 which counter-hypothesis to select.

It will be appreciated that the elements utilized by BCHD 62, like thoseof HCHD 60, are relatively simple elements. Each operation may beperformed within one cycle of relatively short duration due to thesimplicity of operations, and thus, the operations of HCHD 60 and BCHD62 may be implemented in a pipelined manner. Because of this, and of thesimple operations, very high throughput may be possible. Moreover, itwill be appreciated that the throughput is fixed; no steps requiredetermining if the calculation is finished. As a result, data may movethrough demapper 46 very smoothly, which may simplify the design of thecontroller needed to operate demapper 46.

Furthermore, it will be appreciated that the present invention isrelatively insensitive to the errors often caused by using the L₁ normrather than the L₂ norm, and as a result, benefits from substantialsavings in implementation costs.

It will be appreciated that the 64-point QAM constellation used asexample does not limit the applicability of the methods of the presentinvention to other constellations. Moreover, the present invention doesnot require 64 parallel computation paths. It is possible to implement8, 4 and 2 computation paths for 64, 16 and 4 QAM constellations,respectively, and to reuse those paths 8, 4, and 2 times for eachcomplete demapping operation. This way, the amount of operating logicand its operating frequency scales according to the constellation, whichhelps save battery power consumption.

Moreover, it will be appreciated that the number of processing branchesscales with the constellation complexity. In FIGS. 9 and 10, there are64 incoming branches for a 64 QAM constellation. A constellation of adifferent size will have different number of branches. Furthermore, thepower consumption also scales according to constellation complexitywhich provides a significant efficiency.

Referring back to FIG. 6, demapper 47 may provide its output, thehypotheses and counter-hypotheses, to LLR determiner 48 which may, inturn, determine the log-likelihood ratio L_(b) according to equation 4,repeated hereinbelow.

$\begin{matrix}{L_{b} = {\frac{1}{\sigma^{2}}\left( {{2{\hat{u}}^{\lbrack b\rbrack}} - 1} \right)\left( {{{x - {R{\hat{c}}_{b}}}}^{2} - {{x - {R\hat{u}}}}^{2}} \right)}} & {{Equation}\mspace{14mu} 4}\end{matrix}$

where x is the non-normalized received symbol vector and R is thenon-normalized upper triangular matrix.

In accordance with an alternative embodiment of the present invention,the log-likelihood ratio L_(b) may be evaluated more simply, using L₁norms without significantly affecting performance, as follows:

$\begin{matrix}{L_{b} = {{\frac{r_{1}^{2}}{\sigma^{2}}\left( {{2{\hat{u}}^{\lbrack b\rbrack}} - 1} \right){}\overset{\_}{x}} - {\overset{\_}{R}{\hat{c}}_{b}{^{2} - }\overset{\_}{x}} - {\overset{\_}{R}\hat{u}{^{2}}}}} & {{Equation}\mspace{14mu} 4a}\end{matrix}$

where x is the normalized received symbol vector and R is the normalizedupper triangular matrix, normalized by r₁. More importantly, equation 4amay be evaluated using the error magnitudes previously calculated bydemapper 46. Specifically (for bits b=β=1 . . . 6),d ^((m) ^(ML) ^((β)) ^(,β)) =| x− Rĉ _(β)|  Equation 21d ^((k) ^(ML) ⁾ =| x− Rû|  Equation 22

And equation 4a becomes simplified and is evaluated based on previouslycomputed values. Specifically, for bits b=β=1 . . . 6:

$\begin{matrix}{L_{b} = {\frac{r_{1}^{2}}{\sigma^{2}}\left( {{2{\hat{u}}^{\lbrack b\rbrack}} - 1} \right){{d^{({m_{ML}^{(\beta)},\beta})} - d^{(k_{ML})}}}\left( {d^{({m_{ML}^{(\beta)},\beta})} + d^{(k_{{ML})}}} \right)}} & {{Equation}\mspace{14mu} 4b}\end{matrix}$

And for bits b=β+6=7 . . . 12,

$\begin{matrix}{L_{b} = {\frac{r_{1}^{2}}{\sigma^{2}}\left( {{2{\hat{u}}^{\lbrack b\rbrack}} - 1} \right){{d^{(l_{ML}^{(\beta)})} - d^{(k_{ML})}}}\left( {d^{(l_{ML}^{(\beta)})} + d^{(k_{{ML})}}} \right)}} & {{Equation}\mspace{14mu} 4c}\end{matrix}$

It will be appreciated that LLR determiner 48, like demapper 36, isrelatively insensitive to the use of the L₁ norm. This insensitivityreduces the calculations to simple subtractions rather thanmultiplications which very significantly reduces the complexity oflist-based MIMO processor 30.

Unless specifically stated otherwise, as apparent from the precedingdiscussions, it is appreciated that, throughout the specification,discussions utilizing terms such as “processing,” “computing,”“calculating,” “determining,” or the like, refer to the action and/orprocesses of a computer, computing system, or similar electroniccomputing device that manipulates and/or transforms data represented asphysical, such as electronic, quantities within the computing system'sregisters and/or memories into other data similarly represented asphysical quantities within the computing system's memories, registers orother such information storage, transmission or display devices.

Embodiments of the present invention may include apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the desired purposes, or it may comprise ageneral-purpose computer selectively activated or reconfigured by acomputer program stored in the computer. Such a computer program may bestored in a computer readable storage medium, such as, but not limitedto, any type of disk, including floppy disks, optical disks,magnetic-optical disks, read-only memories (ROMs), compact discread-only memories (CD-ROMs), random access memories (RAMs),electrically programmable read-only memories (EPROMs), electricallyerasable and programmable read only memories (EEPROMs), magnetic oroptical cards, Flash memory, or any other type of media suitable forstoring electronic instructions and capable of being coupled to acomputer system bus.

The processes and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general-purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct a more specializedapparatus to perform the desired method. The desired structure for avariety of these systems will appear from the description below. Inaddition, embodiments of the present invention are not described withreference to any particular programming language. It will be appreciatedthat a variety of programming languages may be used to implement theteachings of the invention as described herein.

While certain features of the invention have been illustrated anddescribed herein, many modifications, substitutions, changes, andequivalents will now occur to those of ordinary skill in the art. It is,therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the invention.

APPENDIX A Lookup Tables

The table is the same for the real and the imaginary components. The bitposition is within the component.

bit pos: Zero based bit position within the real or imaginary component;

hyp bit: hypothesis bit value at the bit position;

error sign: sign of the error Ē₁;

c/hyp in: real or imaginary input counter-hypothesis value U₁ ^((m));and

c/hyp out: real or imaginary resultant counter-hypothesis value U₁^((m,β))

//==================================================== // Table ofCounter-Hypotheses for 16-QAM Constellation.//==================================================== //bit hyp errorc/hyp c/hyp //pos bit sign in out // 0 0 −1 −3 −1 // 0 0 −1 −1 −1 // 0 0−1 +1 +1 // 0 0 −1 +3 +1 // 0 0 +1 −3 −1 // 0 0 +1 −1 −1 // 0 0 +1 +1 +1// 0 0 +1 +3 +1 // 0 1 −1 −3 −3 // 0 1 −1 −1 −3 // 0 1 −1 +1 +3 // 0 1−1 +3 +3 // 0 1 +1 −3 −3 // 0 1 +1 −1 −3 // 0 1 +1 +1 +3 // 0 1 +1 +3 +3// 1 0 −1 −3 +1 // 1 0 −1 −1 +1 // 1 0 −1 +1 +1 // 1 0 −1 +3 +3 // 1 0+1 −3 +1 // 1 0 +1 −1 +1 // 1 0 +1 +1 +1 // 1 0 +1 +3 +3 // 1 1 −1 −3 −3// 1 1 −1 −1 −1 // 1 1 −1 +1 −1 // 1 1 −1 +3 −1 // 1 1 +1 −3 −3 // 1 1+1 −1 −1 // 1 1 +1 +1 −1 // 1 1 +1 +3 −1

//===================================================== // Table ofCounter-Hypotheses for BPSK/QPSK Constellation.//===================================================== //bit hyp errorc/hyp c/hyp //pos bit sign in out // 0 0 −1 −1 +1 // 0 0 −1 +1 +1 // 0 0+1 −1 +1 // 0 0 +1 +1 +1 // 0 1 −1 −1 −1 // 0 1 −1 +1 −1 // 0 1 +1 −1 −1// 0 1 +1 +1 −1

//===================================================== // Table ofCounter-Hypotheses for 64-QAM Constellation.//===================================================== //bit hyp errorc/hyp c/hyp //pos bit sign in out // 0 0 −1 −7 −5 // 0 0 −1 −5 −5 // 0 0−1 −3 −3 // 0 0 −1 −1 −3 // 0 0 −1 +1 +3 // 0 0 −1 +3 +3 // 0 0 −1 +5 +5// 0 0 −1 +7 +5 // 0 0 +1 −7 −5 // 0 0 +1 −5 −5 // 0 0 +1 −3 −3 // 0 0+1 −1 −3 // 0 0 +1 +1 +3 // 0 0 +1 +3 +3 // 0 0 +1 +5 +5 // 0 0 +1 +7 +5// 0 1 −1 −7 −7 // 0 1 −1 −5 −7 // 0 1 −1 −3 −1 // 0 1 −1 −1 −1 // 0 1−1 +1 +1 // 0 1 −1 +3 +1 // 0 1 −1 +5 +7 // 0 1 −1 +7 +7 // 0 1 +1 −7 −7// 0 1 +1 −5 −7 // 0 1 +1 −3 −1 // 0 1 +1 −1 −1 // 0 1 +1 +1 +1 // 0 1+1 +3 +1 // 0 1 +1 +5 +7 // 0 1 +1 +7 +7 // 1 0 −1 −7 −3 // 1 0 −1 −5 −3// 1 0 −1 −3 −3 // 1 0 −1 −1 −1 // 1 0 −1 +1 +1 // 1 0 −1 +3 +3 // 1 0−1 +5 +3 // 1 0 −1 +7 +3 // 1 0 +1 −7 −3 // 1 0 +1 −5 −3 // 1 0 +1 −3 −3// 1 0 +1 −1 −1 // 1 0 +1 +1 +1 // 1 0 +1 +3 +3 // 1 0 +1 +5 +3 // 1 0+1 +7 +3 // 1 1 −1 −7 −7 // 1 1 −1 −5 −5 // 1 1 −1 −3 −5 // 1 1 −1 −1 −5// 1 1 −1 +1 +5 // 1 1 −1 +3 +5 // 1 1 −1 +5 +5 // 1 1 −1 +7 +7 // 1 1+1 −7 −7 // 1 1 +1 −5 −5 // 1 1 +1 −3 −5 // 1 1 +1 −1 −5 // 1 1 +1 +1 +5// 1 1 +1 +3 +5 // 1 1 +1 +5 +5 // 1 1 +1 +7 +7 // 2 0 −1 −7 +1 // 2 0−1 −5 +1 // 2 0 −1 −3 +1 // 2 0 −1 −1 +1 // 2 0 −1 +1 +1 // 2 0 −1 +3 +3// 2 0 −1 +5 +5 // 2 0 −1 +7 +7 // 2 0 +1 −7 +1 // 2 0 +1 −5 +1 // 2 0+1 −3 +1 // 2 0 +1 −1 +1 // 2 0 +1 +1 +1 // 2 0 +1 +3 +3 // 2 0 +1 +5 +5// 2 0 +1 +7 +7 // 2 1 −1 −7 −7 // 2 1 −1 −5 −5 // 2 1 −1 −3 −3 // 2 1−1 −1 −1 // 2 1 −1 +1 −1 // 2 1 −1 +3 −1 // 2 1 −1 +5 −1 // 2 1 −1 +7 −1// 2 1 +1 −7 −7 // 2 1 +1 −5 −5 // 2 1 +1 −3 −3 // 2 1 +1 −1 −1 // 2 1+1 +1 −1 // 2 1 +1 +3 −1 // 2 1 +1 +5 −1 // 2 1 +1 +7 −1

//===================================================== // Table ofCounter-Hypotheses for 256-QAM Constellation.//===================================================== //bit hyp errorc/hyp c/hyp //pos bit sign in out // 0 0 −1 −15 −13 // 0 0 −1 −13 −13 //0 0 −1 −11 −11 // 0 0 −1 −9 −11 // 0 0 −1 −7 −5 // 0 0 −1 −5 −5 // 0 0−1 −3 −3 // 0 0 −1 −1 −3 // 0 0 −1 +1 +3 // 0 0 −1 +3 +3 // 0 0 −1 +5 +5// 0 0 −1 +7 +5 // 0 0 −1 +9 +11 // 0 0 −1 +11 +11 // 0 0 −1 +13 +13 //0 0 −1 +15 +13 // 0 0 +1 −15 −13 // 0 0 +1 −13 −13 // 0 0 +1 −11 −11 //0 0 +1 −9 −11 // 0 0 +1 −7 −5 // 0 0 +1 −5 −5 // 0 0 +1 −3 −3 // 0 0 +1−1 −3 // 0 0 +1 +1 +3 // 0 0 +1 +3 +3 // 0 0 +1 +5 +5 // 0 0 +1 +7 +5 //0 0 +1 +9 +11 // 0 0 +1 +11 +11 // 0 0 +1 +13 +13 // 0 0 +1 +15 +13 // 01 −1 −15 −15 // 0 1 −1 −13 −15 // 0 1 −1 −11 −9 // 0 1 −1 −9 −9 // 0 1−1 −7 −7 // 0 1 −1 −5 −7 // 0 1 −1 −3 −1 // 0 1 −1 −1 −1 // 0 1 −1 +1 +1// 0 1 −1 +3 +1 // 0 1 −1 +5 +7 // 0 1 −1 +7 +7 // 0 1 −1 +9 +9 // 0 1−1 +11 +9 // 0 1 −1 +13 +15 // 0 1 −1 +15 +15 // 0 1 +1 −15 −15 // 0 1+1 −13 −15 // 0 1 +1 −11 −9 // 0 1 +1 −9 −9 // 0 1 +1 −7 −7 // 0 1 +1 −5−7 // 0 1 +1 −3 −1 // 0 1 +1 −1 −1 // 0 1 +1 +1 +1 // 0 1 +1 +3 +1 // 01 +1 +5 +7 // 0 1 +1 +7 +7 // 0 1 +1 +9 +9 // 0 1 +1 +11 +9 // 0 1 +1+13 +15 // 0 1 +1 +15 +15 // 1 0 −1 −15 −11 // 1 0 −1 −13 −11 // 1 0 −1−11 −11 // 1 0 −1 −9 −9 // 1 0 −1 −7 −7 // 1 0 −1 −5 −5 // 1 0 −1 −3 −5// 1 0 −1 −1 −5 // 1 0 −1 +1 +5 // 1 0 −1 +3 +5 // 1 0 −1 +5 +5 // 1 0−1 +7 +7 // 1 0 −1 +9 +9 // 1 0 −1 +11 +11 // 1 0 −1 +13 +11 // 1 0 −1+15 +11 // 1 0 +1 −15 −11 // 1 0 +1 −13 −11 // 1 0 +1 −11 −11 // 1 0 +1−9 −9 // 1 0 +1 −7 −7 // 1 0 +1 −5 −5 // 1 0 +1 −3 −5 // 1 0 +1 −1 −5 //1 0 +1 +1 +5 // 1 0 +1 +3 +5 // 1 0 +1 +5 +5 // 1 0 +1 +7 +7 // 1 0 +1+9 +9 // 1 0 +1 +11 +11 // 1 0 +1 +13 +11 // 1 0 +1 +15 +11 // 1 1 −1−15 −15 // 1 1 −1 −13 −13 // 1 1 −1 −11 −13 // 1 1 −1 −9 −13 // 1 1 −1−7 −3 // 1 1 −1 −5 −3 // 1 1 −1 −3 −3 // 1 1 −1 −1 −1 // 1 1 −1 +1 +1 //1 1 −1 +3 +3 // 1 1 −1 +5 +3 // 1 1 −1 +7 +3 // 1 1 −1 +9 +13 // 1 1 −1+11 +13 // 1 1 −1 +13 +13 // 1 1 −1 +15 +15 // 1 1 +1 −15 −15 // 1 1 +1−13 −13 // 1 1 +1 −11 −13 // 1 1 +1 −9 −13 // 1 1 +1 −7 −3 // 1 1 +1 −5−3 // 1 1 +1 −3 −3 // 1 1 +1 −1 −1 // 1 1 +1 +1 +1 // 1 1 +1 +3 +3 // 11 +1 +5 +3 // 1 1 +1 +7 +3 // 1 1 +1 +9 +13 // 1 1 +1 +11 +13 // 1 1 +1+13 +13 // 1 1 +1 +15 +15 // 2 0 −1 −15 −7 // 2 0 −1 −13 −7 // 2 0 −1−11 −7 // 2 0 −1 −9 −7 // 2 0 −1 −7 −7 // 2 0 −1 −5 −5 // 2 0 −1 −3 −3// 2 0 −1 −1 −1 // 2 0 −1 +1 +1 // 2 0 −1 +3 +3 // 2 0 −1 +5 +5 // 2 0−1 +7 +7 // 2 0 −1 +9 +7 // 2 0 −1 +11 +7 // 2 0 −1 +13 +7 // 2 0 −1 +15+7 // 2 0 +1 −15 −7 // 2 0 +1 −13 −7 // 2 0 +1 −11 −7 // 2 0 +1 −9 −7 //2 0 +1 −7 −7 // 2 0 +1 −5 −5 // 2 0 +1 −3 −3 // 2 0 +1 −1 −1 // 2 0 +1+1 +1 // 2 0 +1 +3 +3 // 2 0 +1 +5 +5 // 2 0 +1 +7 +7 // 2 0 +1 +9 +7 //2 0 +1 +11 +7 // 2 0 +1 +13 +7 // 2 0 +1 +15 +7 // 2 1 −1 −15 −15 // 2 1−1 −13 −13 // 2 1 −1 −11 −11 // 2 1 −1 −9 −9 // 2 1 −1 −7 −9 // 2 1 −1−5 −9 // 2 1 −1 −3 −9 // 2 1 −1 −1 −9 // 2 1 −1 +1 +9 // 2 1 −1 +3 +9 //2 1 −1 +5 +9 // 2 1 −1 +7 +9 // 2 1 −1 +9 +9 // 2 1 −1 +11 +11 // 2 1 −1+13 +13 // 2 1 −1 +15 +15 // 2 1 +1 −15 −15 // 2 1 +1 −13 −13 // 2 1 +1−11 −11 // 2 1 +1 −9 −9 // 2 1 +1 −7 −9 // 2 1 +1 −5 −9 // 2 1 +1 −3 −9// 2 1 +1 −1 −9 // 2 1 +1 +1 +9 // 2 1 +1 +3 +9 // 2 1 +1 +5 +9 // 2 1+1 +7 +9 // 2 1 +1 +9 +9 // 2 1 +1 +11 +11 // 2 1 +1 +13 +13 // 2 1 +1+15 +15 // 3 0 −1 −15 +1 // 3 0 −1 −13 +1 // 3 0 −1 −11 +1 // 3 0 −1 −9+1 // 3 0 −1 −7 +1 // 3 0 −1 −5 +1 // 3 0 −1 −3 +1 // 3 0 −1 −1 +1 // 30 −1 +1 +1 // 3 0 −1 +3 +3 // 3 0 −1 +5 +5 // 3 0 −1 +7 +7 // 3 0 −1 +9+9 // 3 0 −1 +11 +11 // 3 0 −1 +13 +13 // 3 0 −1 +15 +15 // 3 0 +1 −15+1 // 3 0 +1 −13 +1 // 3 0 +1 −11 +1 // 3 0 +1 −9 +1 // 3 0 +1 −7 +1 //3 0 +1 −5 +1 // 3 0 +1 −3 +1 // 3 0 +1 −1 +1 // 3 0 +1 +1 +1 // 3 0 +1+3 +3 // 3 0 +1 +5 +5 // 3 0 +1 +7 +7 // 3 0 +1 +9 +9 // 3 0 +1 +11 +11// 3 0 +1 +13 +13 // 3 0 +1 +15 +15 // 3 1 −1 −15 −15 // 3 1 −1 −13 −13// 3 1 −1 −11 −11 // 3 1 −1 −9 −9 // 3 1 −1 −7 −7 // 3 1 −1 −5 −5 // 3 1−1 −3 −3 // 3 1 −1 −1 −1 // 3 1 −1 +1 −1 // 3 1 −1 +3 −1 // 3 1 −1 +5 −1// 3 1 −1 +7 −1 // 3 1 −1 +9 −1 // 3 1 −1 +11 −1 // 3 1 −1 +13 −1 // 3 1−1 +15 −1 // 3 1 +1 −15 −15 // 3 1 +1 −13 −13 // 3 1 +1 −11 −11 // 3 1+1 −9 −9 // 3 1 +1 −7 −7 // 3 1 +1 −5 −5 // 3 1 +1 −3 −3 // 3 1 +1 −1 −1// 3 1 +1 +1 −1 // 3 1 +1 +3 −1 // 3 1 +1 +5 −1 // 3 1 +1 +7 −1 // 3 1+1 +9 −1 // 3 1 +1 +11 −1 // 3 1 +1 +13 −1 // 3 1 +1 +15 −1

What is claimed is:
 1. A demapper for a multiple-input, multiple-outputsymbol receiver, the demapper comprising: a hypothesis determiner todetermine hypotheses values for each of a multiplicity of receivedsymbols; and a first half counter-hypotheses determiner to reuse interimresults of said hypothesis determiner to generate a first half ofcounter-hypotheses; wherein said hypothesis determiner comprises: a QRdecomposer to generate at least an R matrix from an input channelestimate matrix H; wherein the R matrix is an right triangular matrixthat has a upper left element r1, an upper right element R₁₂ and a lowerright element r2; a normalizer to normalize input signals and elementsof said R matrix; a candidate hypothesis generator operating on theoutput of said normalizer to generate a plurality of constrainedcandidate hypothesis values for one of said received symbols andresultant unconstrained hypothesis values for a second one of saidreceived symbols; a normalized error calculator to operate with minimalmultiplications and to generate an error magnitude for each of saidplurality of constrained candidate hypotheses and their resultantunconstrained hypothesis values; and a hypothesis generator to reviewsaid error magnitudes and to select a constrained hypothesis andresultant unconstrained hypothesis corresponding to a smallest errormagnitude.
 2. The demapper according to claim 1 further comprising asecond half counter-hypotheses determiner to receive a portion of saidinterim results and to provide them to a table lookup to generate asecond half of said counter-hypotheses.
 3. The demapper according toclaim 1 wherein said first half counter-hypotheses determiner comprises:a multiplicity of counter-hypothesis generators, one per bit of saidselected hypothesis, each to review a set of said error magnitudeassociated with candidate counter-hypotheses and to selectcounter-hypothesis corresponding to the smallest error magnitude in saidset of error magnitudes.
 4. The demapper according to claim 1 whereinsaid normalized error calculator comprises: a d₂ error magnitudecalculator to evaluate an error Ē₂ ^((k))= X ₂− r ₂U₂ ^((k)) and itscorresponding L₁ norm wherein r ₂ is a normalized r2 element of matrixR, X ₂ is a normalized input signal and U₂ ^((k)) is a constellationpoint; a d₁ error magnitude calculator to evaluate Ũ₁ ^((k))= X ₁− R₁₂U₂ ^((k)), wherein R ₁₂ is a normalized R₁₂ element of matrix R,{tilde over (X)}₁ is a normalized input signal, to find a closestconstellation point U₁ ^((k)) to an unconstrained solution Ũ₁ ^((k)) andto determine an error Ē₁ ^((k)) therebetween and its corresponding L₁norm; and a total error magnitude calculator to determine a total errormagnitude from the output of d₂ error magnitude calculator and d₁ errormagnitude calculator.
 5. The demapper according to claim 4 wherein saidd₁ error magnitude calculator and said d₂ error magnitude calculatorcomprise L₁ norm calculators.
 6. The demapper according to claim 1wherein said normalized error calculator comprises a multiplicity ofprocessing branches, wherein a number of processing branches scales witha complexity of the constellation type related to said symbols.
 7. Thedemapper according to claim 1 that is arranged to provide interimresults of the first half counter-hypotheses determiner, of the secondhalf counter-hypotheses determiner and of the hypotheses determiner to alog-likelihood ratio (LLR) determiner, wherein said LLR determinerutilizes said interim results to generate a log-likelihood ratio L_(b).8. A method, implementable on a multiple-input, multiple-output symbolreceiver, the method comprising: receiving or calculating a set of fixedconstellation points; selecting a hypothesis for a second symbol valueU₂ from among the set of fixed constellation points; calculating ahypothesis for a first symbol value U₁ from resultant selected U₂ value;and generating a first half of counter-hypotheses from interim resultsof calculating said hypotheses values; wherein the method comprising,prior to said calculating: normalizing the following equations by anupper left element r₁ of matrix R thereby to enable the remainingoperations to operate with minimal multiplications:E ₂ =X ₂ −r ₂ U ₂E ₁ =X ₁ −r ₁ U ₁ −R ₁₂ U ₂ wherein R is a right triangular matrix thatalso comprises an upper right element R₁₂ and a lower right element r2;where R is generated by QR decomposition from an input channel estimatematrix H, U₁ and U₂ are transmitted symbols to be demapped and X₁ and X₂are the received signals and E₁ and E₂ are errors.
 9. The methodaccording to claim 8 comprising providing a portion of said interimresults to a table lookup to generate a second half of saidcounter-hypotheses.
 10. The method according to claim 8 wherein saidcalculating comprises calculating errors and determining a size of saiderrors.
 11. The method according to claim 8 comprising: determining alog-likelihood ratio L_(b) from said interim results of calculating saidhypotheses values and from interim results of said table lookupoperation.